using System;
using System.Collections.Generic;
using System.Text;

namespace Microsoft.CommerceServer.Catalog.Tools
{
	/// <summary>
	/// This class contains options to filter inventory data according to the different sku conditions
	/// </summary>
	public class InventoryFilterOptions
	{
		#region Private Fields
		/// <summary>
		/// If <c>true</c> will filter products that are out of stock.
		/// </summary>
		private bool filterOutOfStockSkus;

		/// <summary>
		/// If <c>true</c> will filter products that can be back ordered.
		/// </summary>
		private bool filterBackorderableSkus;

		/// <summary>
		/// If <c>true</c> will filter products that can be pre ordered.
		/// </summary>
		private bool filterPreorderableSkus;
		#endregion

		#region Public Properties
		/// <summary>
		/// Gets or sets a value that specifies whether products that are out of stock are filtered.
		/// </summary>
		public bool FilterOutOfStockSkus
		{
			get { return filterOutOfStockSkus; }
			set { filterOutOfStockSkus = value; }
		}
		
		/// <summary>
		///  Gets or sets a value that specifies whether products that can be backordered are filtered.
		/// </summary>
		public bool FilterBackorderableSkus
		{
			get { return filterBackorderableSkus; }
			set { filterBackorderableSkus = value; }
		}

		/// <summary>
		/// Gets or sets a value that specifies whether products that can be backordered are filtered.
		/// </summary>
		public bool FilterPreorderableSkus
		{
			get { return filterPreorderableSkus; }
			set { filterPreorderableSkus = value; }
		}
		#endregion

		#region Constructors
		/// <summary>
		/// Constructor that takes no arguments. Sets all filters to False
		/// </summary>
		public InventoryFilterOptions()
		{
			filterOutOfStockSkus = false;
			filterBackorderableSkus = false;
			filterPreorderableSkus = false;
		}
		#endregion

	}
}
